0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
7
12
16
15
16
16
16
17
19
21
27
34
34
33
31
29
28
27
27
26
28
32
34
34
34
32
29
24
23
20
22
25
30
33
33
31
29
28
29
30
28
29
25
24
27
27
28
29
29
32
31
34
37
39
40
42
43
43
44
45
45
44
41
38
33
30
31
36
41
44
49
52
51
50
51
50
51
51
53
54
55
56
56
56
55
56
56
56
55
54
53
50
47
42
39
36
32
34
33
32
31
32
32
32
32
37
37
38
41
42
44
51
55
54
56
58
59
61
63
64
66
68
69
70
69
68
68
69
71
71
70
69
69
68
68
67
66
64
63
59
52
50
47
45
44
45
46
46
45
49
53
57
61
61
60
58
56
55
55
53
56
54
55
55
54
55
56
55
61
65
64
66
68
71
74
76
79
82
83
82
84
85
87
89
90
92
93
94
95
97
98
99
100
100
101
102
103
103
104
104
105
105
106
106
106
106
106
106
106
107
107
107
107
107
107
107
107
108
108
108
108
108
108
108
108
108
112
108
108
108
108
108
108
108
107
106
104
104
104
104
104
104
103
100
96
91
88
84
82
81
80
80
81
83
84
84
83
84
84
85
85
85
84
83
82
81
80
80
80
80
80
81
81
79
78
77
78
78
79
79
80
81
82
84
85
86
86
86
86
86
87
87
88
88
89
89
89
90
90
91
91
91
92
92
92
93
93
94
94
95
95
96
96
96
95
95
94
94
95
96
96
97
98
98
99
99
100
99
100
100
101
101
102
103
104
105
106
107
108
109
110
111
111
111
112
112
113
113
113
113
114
115
114
114
115
115
115
115
114
114
113
112
111
110
108
108
108
109
110
111
111
111
111
111
111
111
111
111
111
110
110
110
110
109
109
108
108
107
107
107
107
107
106
106
106
107
107
108
108
108
108
107
106
105
104
103
103
103
103
103
103
104
104
104
104
104
105
105
105
106
106
106
106
106
106
106
106
106
107
107
107
107
107
107
108
108
108
108
108
108
108
108
108
108
108
108
108
108
108
109
109
110
109
108
107
106
104
103
101
98
95
90
83
76
70
69
65
63
61
63
65
67
66
64
62
55
53
51
49
51
51
54
57
59
56
57
60
61
61
61
62
63
64
66
65
63
61
64
65
65
65
64
64
64
64
65
66
66
67
66
63
61
60
61
60
59
58
53
52
53
51
50
50
49
48
48
49
51
52
52
51
52
53
53
53
53
52
51
51
51
50
51
50
51
51
51
52
53
55
56
60
57
58
59
60
60
61
62
63
64
64
64
65
65
65
64
64
64
63
63
63
63
63
63
63
63
64
64
64
64
64
63
62
61
61
60
59
58
56
53
50
49
47
46
44
45
46
45
45
43
42
41
40
37
34
27
20
14
9
5
0
0
0
0
0
0
0
0
4
6
9
15
15
15
18
20
18
14
11
10
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
4
0
0
8
5
0
0
5
6
5
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
16
16
15
12
7
5
8
13
20
21
26
32
35
36
40
42
43
45
46
47
43
41
38
33
28
23
22
22
29
35
36
38
40
42
44
46
49
51
54
55
55
57
57
57
57
57
57
58
58
58
59
60
59
58
58
58
57
57
58
59
58
59
59
60
60
59
59
58
58
57
57
56
57
57
57
58
58
58
58
59
59
59
59
59
58
58
58
58
58
58
58
57
57
57
56
58
59
60
59
57
56
55
55
56
56
56
58
58
60
59
59
59
58
58
58
57
56
56
55
55
55
55
55
55
55
55
54
54
54
54
52
51
49
49
50
50
50
49
48
50
50
51
51
52
53
54
55
55
55
56
57
57
57
57
57
56
54
52
50
48
47
48
48
47
48
48
49
52
54
56
57
58
58
58
58
57
57
55
54
52
51
49
53
52
53
55
56
57
57
59
57
57
56
56
55
54
54
54
54
54
54
55
55
55
54
54
53
52
51
49
48
48
48
48
48
49
50
49
49
48
49
51
50
51
52
52
53
52
51
49
48
48
48
49
51
52
53
53
52
48
51
49
50
50
50
50
51
51
51
51
51
51
51
48
43
42
41
44
47
51
51
50
48
44
42
43
45
46
44
44
46
48
51
53
52
54
55
57
58
59
59
59
58
57
58
58
55
52
52
52
54
55
55
57
58
58
58
59
59
60
60
60
59
59
58
58
58
58
59
60
61
61
62
62
62
62
62
62
62
62
62
62
61
60
59
59
60
61
63
63
63
62
61
63
62
62
61
61
60
60
61
62
62
62
62
62
63
63
63
62
61
61
61
60
58
57
52
50
48
45
42
42
42
41
44
44
46
51
49
50
51
52
51
50
46
44
46
44
42
43
44
46
43
45
44
44
42
39
37
37
37
38
41
45
47
47
46
45
43
43
45
47
47
46
44
41
40
34
24
15
11
14
18
19
26
33
34
36
40
42
42
42
40
39
38
38
40
40
41
41
41
41
41
41
41
41
40
39
38
34
28
19
15
12
10
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
7
6
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
13
18
21
31
36
37
39
43
46
48
49
49
49
50
52
53
54
56
55
56
55
58
55
54
53
54
55
56
57
55
54
51
45
43
42
44
46
48
51
51
53
55
56
56
56
55
54
53
52
50
50
50
52
52
53
54
54
54
51
53
52
54
54
55
56
56
58
59
59
60
60
61
61
62
61
62
62
62
62
61
61
60
59
59
59
59
60
60
61
60
60
60
60
60
59
58
58
58
57
55
54
52
53
55
57
57
57
57
57
56
56
55
54
53
52
51
54
55
53
53
47
45
44
46
50
51
52
52
48
46
44
44
44
46
48
51
54
53
53
54
56
57
56
56
55
55
55
55
55
55
55
55
56
56
56
56
56
57
57
57
57
57
57
57
56
55
54
53
53
52
54
55
57
59
60
61
61
62
62
62
61
60
60
61
60
57
54
49
43
39
39
41
41
42
41
43
43
41
42
43
43
43
43
41
39
38
38
40
42
44
47
48
48
49
52
54
56
58
60
61
62
62
63
64
64
64
65
65
65
65
65
65
65
64
64
64
64
64
64
63
63
62
60
59
58
57
57
56
50
42
37
35
33
30
26
22
15
8
8
15
22
28
35
38
39
41
42
43
42
42
41
41
41
40
39
38
38
37
36
36
35
32
27
27
25
24
24
25
27
28
31
24
18
11
5
0
0
5
0
0
0
7
14
16
21
24
32
34
37
40
43
43
44
44
46
48
50
51
52
52
51
50
48
45
41
39
35
30
25
20
15
14
11
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
9
5
0
0
6
9
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
6
13
18
20
25
32
35
38
40
42
44
45
48
52
54
53
54
54
54
53
50
47
44
44
46
48
51
52
52
52
51
44
36
30
22
20
22
25
25
30
32
34
36
36
35
35
33
28
22
17
20
26
29
31
33
36
39
41
40
41
43
46
47
48
52
52
55
55
55
54
56
57
59
61
61
61
61
61
61
61
60
58
54
47
39
34
27
21
21
24
32
35
38
40
40
37
34
29
25
27
33
35
39
43
46
47
48
49
49
48
47
46
46
47
48
51
51
52
53
53
53
53
54
54
56
56
58
59
59
59
59
59
59
59
58
58
58
58
59
59
60
60
60
59
60
59
59
59
59
60
59
59
58
57
55
54
52
51
50
51
52
53
53
54
53
53
53
54
55
56
57
57
58
59
59
60
61
62
62
62
62
62
62
62
62
62
62
62
61
61
61
61
61
61
61
61
61
61
61
60
60
61
61
62
61
61
61
60
60
60
60
60
60
60
61
60
59
58
57
57
57
57
57
56
56
56
56
56
56
56
57
56
57
58
58
59
59
59
60
60
60
60
60
60
60
61
61
61
61
61
60
59
57
55
54
54
54
54
54
54
55
55
56
56
56
57
57
57
58
58
58
58
58
59
59
59
59
59
58
56
55
53
52
51
49
46
43
42
40
37
35
34
35
35
36
36
37
38
40
41
43
46
49
51
50
49
49
49
50
51
52
53
54
54
55
56
56
57
57
58
56
55
54
54
55
54
53
53
52
52
53
52
53
53
54
54
55
55
55
55
54
53
51
51
51
49
46
39
34
32
31
31
32
33
34
37
39
42
42
43
43
43
41
39
36
30
28
25
25
24
25
26
24
22
20
18
16
15
18
25
28
27
26
22
16
12
8
5
0
0
0
0
0
0
0
0
0
6
11
15
17
17
17
17
17
18
18
18
18
18
18
18
17
16
15
14
9
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
18
18
17
16
13
12
13
15
16
16
14
13
12
13
14
13
12
13
15
14
13
12
12
12
11
11
11
10
8
6
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
11
15
16
17
19
21
24
30
31
31
33
35
34
32
30
29
30
32
33
31
29
26
24
21
18
15
12
12
10
7
7
8
10
12
13
15
17
18
17
15
13
14
15
14
10
7
5
3
0
0
0
0
0
0
0
0
0
0
5
10
13
14
14
13
13
12
12
10
9
8
7
7
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7
11
13
17
19
19
23
26
27
27
27
26
23
20
18
15
12
8
5
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
8
14
15
17
18
18
20
23
23
23
23
22
22
22
23
22
18
16
16
16
17
18
19
19
19
20
21
22
20
18
14
13
15
18
20
23
24
24
23
21
18
16
15
14
10
8
8
10
12
11
3
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
4
0
0
0
4
4
5
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
5
7
5
5
5
4
5
4
0
0
0
0
0
0
0
0
0
0
0
0
0
7
14
16
24
28
28
27
26
22
14
4
0
0
0
0
0
0
0
0
4
0
0
0
7
16
16
18
18
16
15
13
13
11
8
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
6
6
9
12
12
8
0
0
0
0
0
0
0
0
0
5
5
5
5
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
10
12
9
3
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
9
12
17
19
22
25
25
23
21
18
17
17
19
19
19
17
16
14
13
12
7
5
10
15
17
24
29
35
37
41
45
47
49
50
50
50
49
49
48
48
48
47
46
45
44
43
38
31
25
19
13
9
6
5
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
11
18
20
25
29
31
33
35
35
36
38
39
39
40
40
39
39
39
40
40
40
40
40
40
40
40
40
40
40
41
44
47
48
48
47
46
46
46
46
46
45
44
42
40
38
38
38
39
38
38
38
38
38
37
36
34
31
28
22
19
15
14
10
11
14
16
14
10
10
11
12
10
7
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
0
3
7
5
0
0
0
0
0
4
6
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
6
10
14
16
17
17
19
22
25
28
32
34
35
37
38
38
38
39
39
39
38
38
38
38
38
37
36
34
32
33
34
33
31
29
29
28
28
27
27
27
27
27
28
28
29
29
29
30
30
29
25
20
18
17
17
19
21
20
16
12
15
13
8
6
6
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
4
5
0
0
6
4
0
0
0
4
6
7
6
4
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
5
5
6
5
5
10
15
14
17
19
19
16
12
10
11
15
19
23
29
36
36
38
40
40
41
40
38
38
37
37
36
36
36
37
38
39
40
40
40
38
37
36
35
36
37
37
36
33
28
23
20
19
19
24
28
32
33
37
40
43
46
48
50
49
50
52
53
53
54
54
54
54
53
51
51
51
51
51
44
37
29
20
14
9
5
0
0
0
0
0
0
0
0
0
0
3
11
15
15
16
19
23
30
34
34
35
36
36
34
32
28
21
14
9
6
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
12
19
20
23
22
19
17
19
29
37
42
43
47
51
53
54
56
56
55
53
51
50
48
46
45
43
39
31
27
24
22
18
16
15
15
15
16
13
9
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
11
16
17
18
16
15
17
19
22
26
26
25
29
35
38
42
44
43
41
40
42
46
49
52
51
53
54
56
58
59
61
64
66
67
67
67
66
65
63
61
59
57
56
55
54
51
49
47
44
41
38
36
35
34
34
33
31
25
18
16
18
21
28
28
31
34
34
34
35
35
36
38
40
40
40
39
39
38
38
38
38
37
36
33
26
21
22
27
30
31
31
29
26
26
28
28
27
25
22
19
20
25
28
28
28
28
28
29
29
29
28
28
30
30
31
31
31
30
31
32
33
33
33
33
33
33
33
31
28
23
19
16
14
14
10
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
7
7
7
6
5
0
4
12
14
19
23
28
30
32
33
33
32
30
29
23
18
13
8
7
9
8
5
6
11
15
17
15
13
11
8
4
0
5
8
8
11
14
10
8
11
11
10
9
8
7
6
5
5
0
0
0
4
3
0
4
4
0
0
0
4
8
12
13
15
14
10
7
5
6
6
5
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
6
7
11
18
18
23
28
32
34
34
35
36
35
33
32
29
27
22
17
15
16
21
25
29
30
34
36
38
40
41
42
43
44
43
42
42
41
40
39
40
40
39
39
39
39
39
39
39
39
39
39
39
39
38
36
34
34
34
34
33
33
32
31
29
25
20
17
16
16
20
23
28
32
34
33
33
31
28
23
19
13
7
0
0
0
0
0
0
0
0
6
10
12
12
13
14
13
10
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
9
17
20
27
31
35
38
40
42
45
47
50
51
51
51
51
52
53
56
55
54
55
55
57
59
62
64
64
62
62
60
58
58
57
56
54
52
47
40
33
27
24
19
14
7
0
0
0
0
0
0
0
0
0
8
15
20
20
24
22
24
29
33
31
32
34
36
37
38
38
38
38
37
36
34
29
21
14
10
6
3
0
5
8
10
13
16
20
22
23
23
24
24
25
27
29
29
28
27
22
21
21
22
21
22
27
29
29
31
33
35
36
37
35
33
30
23
17
18
19
21
24
26
27
28
30
31
30
29
28
23
19
19
21
22
28
32
32
35
36
35
33
32
31
29
25
20
17
18
21
21
20
15
10
8
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
5
3
0
6
12
7
0
0
7
10
7
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
8
13
16
18
19
17
20
18
21
25
28
30
31
32
32
32
32
32
32
29
26
22
17
14
14
18
24
30
31
32
34
35
35
37
40
39
39
37
37
35
33
25
17
10
6
9
17
20
24
27
31
36
36
37
38
38
38
36
33
32
32
30
29
28
27
26
24
19
14
7
0
0
0
0
0
0
0
0
0
5
7
9
10
12
15
17
17
20
23
27
30
31
32
33
33
33
33
34
34
34
34
33
31
26
20
14
14
17
22
25
28
28
28
27
27
27
26
24
22
19
17
18
23
29
33
36
40
43
48
53
53
52
51
50
48
44
40
36
33
27
19
16
17
22
28
33
34
38
41
44
46
47
44
42
39
34
28
22
16
11
7
4
0
0
0
0
0
0
0
6
11
16
17
18
18
19
22
26
30
35
36
38
40
42
43
43
44
44
45
45
46
46
46
56
52
49
47
48
53
55
56
56
55
54
53
52
51
49
47
45
44
42
38
32
26
20
15
10
8
8
7
5
4
4
5
7
12
17
18
21
25
24
22
19
16
15
18
21
23
29
29
29
30
30
28
23
17
12
9
8
7
7
9
13
12
11
6
5
7
6
6
6
6
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
5
6
5
3
0
0
3
6
6
4
0
0
0
0
6
9
9
8
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
12
17
17
16
14
9
7
10
14
17
19
23
27
28
26
24
19
16
14
15
17
22
28
34
36
37
40
42
44
45
46
46
44
42
37
32
26
23
19
15
11
7
6
7
10
10
10
12
17
21
23
25
26
29
28
27
25
24
24
28
32
34
36
37
37
34
32
31
26
17
9
9
14
17
23
26
35
34
34
30
24
18
15
19
25
29
32
31
33
30
28
25
24
26
24
23
18
11
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
13
18
21
27
30
32
36
39
43
47
51
51
52
53
53
52
51
48
47
45
43
41
36
35
34
33
29
26
25
26
30
35
38
40
43
45
47
49
49
50
51
52
51
51
52
51
50
50
49
50
50
51
51
52
52
53
54
54
54
54
54
53
54
53
51
51
49
47
44
42
40
38
38
40
40
39
37
33
30
30
29
31
32
33
35
35
40
41
42
43
43
44
44
44
44
44
43
41
37
34
36
37
39
42
44
46
48
48
49
49
50
52
51
52
52
49
48
49
49
48
46
45
41
36
32
28
27
29
32
35
38
41
42
44
46
47
47
46
45
45
46
46
45
45
45
44
42
42
41
40
40
41
42
43
43
43
43
44
43
42
40
38
35
28
20
14
7
5
0
0
0
0
0
9
16
16
15
16
19
25
29
31
33
36
38
40
41
40
40
39
41
41
42
42
42
43
43
42
40
38
37
36
35
38
43
46
53
58
59
58
54
47
40
33
27
26
26
26
24
22
22
25
28
31
32
32
30
27
25
20
14
11
9
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
4
4
5
4
0
0
0
0
0
0
7
9
9
9
10
11
10
7
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
17
19
20
23
22
21
20
18
15
11
5
7
10
8
5
4
11
12
14
21
27
30
29
27
26
27
30
29
27
26
25
25
26
25
25
24
24
24
24
23
17
16
14
10
8
10
11
16
22
27
36
36
38
38
38
36
35
33
32
31
31
30
30
29
27
21
12
5
5
8
14
18
18
21
21
21
21
20
20
20
19
19
22
25
26
26
25
23
21
19
18
16
12
10
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
8
12
15
14
6
0
0
0
7
5
0
0
4
6
8
10
13
16
15
12
8
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
8
17
21
26
28
29
29
26
26
26
28
28
30
30
29
27
26
24
23
22
20
20
20
21
22
19
18
15
10
7
9
16
19
23
28
33
37
41
43
42
39
38
35
32
33
30
29
28
28
28
27
25
23
19
14
4
0
0
0
0
0
6
13
20
27
33
37
39
42
43
45
46
46
45
45
45
46
46
45
43
41
38
33
32
30
27
25
19
19
24
28
32
33
36
40
42
42
43
42
42
42
41
40
42
43
42
42
42
38
36
34
33
35
37
39
41
42
42
42
41
41
41
41
42
42
42
41
40
41
41
40
41
39
38
35
33
31
31
30
29
24
18
12
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
5
5
0
0
0
0
7
12
16
16
17
20
23
24
23
22
23
24
26
26
26
28
32
32
32
32
31
29
27
29
33
36
38
37
33
29
28
30
33
35
35
36
37
37
37
37
36
34
31
29
28
24
21
24
29
30
32
35
36
36
36
37
37
37
38
38
38
37
36
33
31
31
30
30
30
31
31
31
31
31
31
31
31
28
27
26
26
27
29
28
26
25
23
23
21
18
16
16
18
18
22
28
32
32
33
34
32
30
27
23
18
15
14
14
15
16
17
19
21
24
29
33
33
35
35
35
35
35
35
35
35
35
34
34
34
34
33
32
31
30
30
28
27
26
24
23
22
21
20
20
20
18
14
8
6
5
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
13
15
17
16
13
13
16
21
27
29
27
24
20
16
15
14
13
14
14
12
8
6
5
7
6
6
5
4
4
6
6
5
4
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
11
11
14
19
18
17
17
18
19
20
20
19
15
5
0
0
0
0
0
0
0
0
4
10
15
18
19
19
18
15
15
13
12
10
12
17
19
21
22
24
23
21
17
15
15
16
14
13
13
15
16
16
15
7
6
4
5
8
13
14
11
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
12
16
15
12
15
14
15
15
15
15
12
6
0
0
0
7
12
11
8
5
0
0
7
17
20
25
32
35
35
33
27
18
12
8
12
16
16
21
27
28
27
24
22
20
20
19
16
10
5
0
0
0
0
0
0
0
0
3
9
14
14
17
17
17
19
19
19
20
20
22
25
27
32
36
39
43
48
53
58
58
60
59
57
55
54
52
49
47
48
49
49
49
47
46
45
46
47
48
48
47
45
43
42
42
43
44
45
46
47
47
46
46
45
44
42
42
42
44
46
49
52
54
53
52
49
43
40
39
42
44
45
45
45
45
44
42
39
39
40
40
40
40
40
40
39
39
39
40
43
45
46
46
45
43
42
42
42
41
41
40
40
39
33
22
12
5
0
0
0
7
13
15
18
19
17
17
20
23
25
27
30
31
29
28
29
30
30
29
28
27
27
26
24
22
21
21
21
19
16
16
16
15
15
15
15
13
11
11
10
9
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
4
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7
18
18
20
21
21
22
27
32
32
33
33
34
35
35
35
36
37
38
39
40
40
42
44
45
46
48
47
46
44
43
42
42
42
42
41
43
45
48
50
49
50
50
49
48
48
48
48
47
45
43
41
38
36
34
31
30
28
26
21
20
19
19
16
13
11
10
8
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
8
16
21
21
21
23
27
32
37
37
38
38
38
36
35
34
34
34
34
35
35
36
36
37
36
34
33
31
30
29
29
29
27
20
11
6
0
0
0
8
12
15
16
14
14
16
17
19
21
24
26
27
28
28
28
28
28
29
29
28
29
31
32
32
33
34
35
37
38
38
38
39
40
43
45
45
43
42
41
41
41
42
41
41
41
42
44
46
47
47
47
47
50
54
54
53
52
51
50
49
50
51
51
50
49
47
41
39
36
35
34
33
35
36
36
35
33
32
31
31
29
27
26
26
26
25
23
19
16
13
12
14
15
15
14
13
9
6
4
4
5
4
4
6
5
7
7
6
4
0
0
0
0
4
7
6
6
5
4
0
4
10
16
17
16
14
12
9
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
13
13
12
15
18
15
9
0
0
4
4
3
0
0
0
0
0
0
0
0
0
4
10
15
19
20
24
28
26
23
22
24
27
29
30
29
24
17
12
10
11
11
13
14
16
16
17
21
23
22
15
12
12
12
13
13
13
13
15
18
19
16
10
8
6
6
7
8
5
4
6
4
6
6
6
8
13
13
14
14
14
14
16
18
19
18
15
15
15
15
13
17
19
21
19
10
5
4
10
18
19
23
26
29
30
34
34
37
38
36
37
35
34
33
33
33
33
35
33
33
34
36
37
35
33
33
36
35
35
33
31
32
30
28
27
21
16
10
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
8
13
14
13
15
15
18
22
26
31
34
35
34
32
30
30
26
23
20
17
15
9
7
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
6
9
20
20
25
28
29
32
35
36
37
36
35
35
34
34
34
35
34
32
22
15
14
15
13
15
12
10
7
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7
10
9
11
12
17
22
25
27
28
29
29
28
23
18
15
15
15
15
15
17
17
16
14
16
18
20
20
20
20
20
21
21
21
22
25
28
33
34
33
34
34
32
30
27
27
28
29
31
33
35
35
34
32
30
29
26
20
13
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
11
16
22
22
26
27
28
31
35
39
44
47
47
50
53
53
55
57
59
60
61
61
62
62
63
63
63
63
62
61
61
60
59
58
60
62
64
64
63
59
55
53
54
55
55
54
53
51
49
47
45
44
44
47
46
46
46
43
40
39
38
38
39
41
44
45
47
50
52
54
53
51
49
47
46
43
40
36
31
23
14
7
0
0
0
0
0
0
0
0
0
0
12
18
18
20
21
22
23
24
23
15
11
7
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
15
18
19
22
24
24
26
28
32
38
40
43
48
52
55
54
52
50
49
49
51
51
50
49
49
51
53
54
54
53
53
54
54
54
54
54
53
51
50
48
46
43
39
35
29
19
9
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
14
17
21
24
24
22
23
22
22
15
6
0
0
0
4
6
16
21
25
31
34
34
32
30
32
32
32
32
33
39
41
43
43
43
43
42
42
42
41
41
42
42
42
43
43
41
38
35
31
27
21
22
24
26
26
28
28
26
24
26
26
24
21
17
14
10
9
12
9
11
17
18
14
9
5
3
4
5
5
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
19
24
30
37
40
43
44
43
43
45
48
50
50
49
49
47
46
46
44
42
37
32
28
24
20
16
9
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
9
20
25
31
37
41
43
45
46
46
46
45
45
43
42
40
38
33
28
27
26
27
33
39
42
46
49
51
51
50
49
47
45
41
37
32
25
16
11
14
20
25
29
30
34
36
34
31
31
29
29
29
31
33
32
29
28
27
25
24
21
18
12
8
0
0
0
7
12
17
23
25
24
24
23
21
17
12
9
6
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7
18
20
25
25
22
19
17
10
0
0
0
3
6
6
8
9
12
16
22
22
24
23
24
24
20
13
7
0
0
0
0
0
0
0
4
4
4
4
6
22
25
25
25
26
24
22
22
20
16
10
7
8
12
19
24
30
30
28
24
16
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
15
10
8
13
16
20
25
29
31
31
30
26
27
31
33
30
22
13
6
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
17
20
20
13
0
0
0
0
0
0
0
0
0
0
13
15
17
25
30
35
36
39
39
38
36
33
34
36
36
36
37
38
40
39
38
35
31
27
19
9
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
0
0
0
0
0
7
13
17
18
20
22
23
23
23
25
33
37
38
42
44
51
55
57
59
61
62
63
64
64
65
65
65
67
67
67
64
65
65
63
63
62
59
55
50
48
44
39
35
30
23
13
7
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
19
19
22
26
27
27
28
28
29
31
37
40
42
42
43
43
43
42
41
41
41
41
42
45
46
48
51
54
54
56
57
58
55
53
54
54
52
51
50
47
43
42
41
41
37
37
35
33
33
31
27
19
14
4
0
0
0
0
4
6
8
11
10
8
6
7
10
20
26
33
40
41
44
49
53
57
57
57
57
57
57
57
57
54
50
46
44
43
42
39
33
27
21
15
8
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
15
22
24
28
31
35
37
41
45
46
47
50
54
57
58
61
60
59
58
57
55
53
51
49
49
47
43
37
34
32
32
34
37
38
39
40
40
41
42
42
42
42
42
43
45
47
47
46
46
45
45
45
43
45
46
47
47
46
48
50
51
49
47
45
43
40
37
31
28
24
20
20
22
29
33
35
39
43
45
43
41
38
27
30
28
32
34
32
29
24
19
23
24
27
29
30
29
28
24
19
12
5
5
7
7
6
6
6
8
7
7
7
7
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
13
13
14
12
11
7
5
0
0
0
4
0
0
0
7
16
18
18
12
9
6
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7
13
14
13
7
8
11
10
6
5
8
9
19
21
25
25
23
17
11
9
11
10
11
15
20
27
33
39
40
44
48
51
54
56
55
52
52
50
48
47
46
43
41
23
14
9
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
10
14
16
16
20
25
30
36
38
42
44
48
53
57
58
59
60
59
58
55
51
44
41
40
37
31
23
19
20
21
21
21
23
24
23
22
20
21
27
31
35
38
40
40
40
38
33
28
23
16
14
16
20
25
31
32
34
34
34
34
34
35
35
34
33
33
32
32
31
31
30
30
30
31
33
33
33
32
31
27
21
17
13
9
7
5
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
5
7
8
7
5
0
0
7
7
5
0
0
0
0
0
0
0
0
0
0
0
0
5
0
0
0
10
16
17
21
24
25
26
26
28
33
34
35
34
30
24
19
13
10
7
5
5
6
9
12
13
13
15
17
20
21
20
18
17
14
12
11
11
14
18
22
22
21
21
20
19
17
14
13
13
14
14
13
15
17
21
25
27
27
27
27
27
26
23
16
7
0
0
7
15
20
26
32
33
36
36
34
31
22
15
13
8
6
9
12
12
8
7
5
5
3
3
3
3
0
0
5
13
27
34
37
38
38
36
31
26
21
13
9
11
12
12
14
17
20
21
18
17
16
15
6
0
0
0
0
0
0
4
5
5
5
5
6
6
0
0
0
0
0
0
0
0
0
4
10
12
11
10
18
21
26
27
32
37
39
42
44
44
44
51
47
44
39
41
44
42
40
36
31
20
10
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
12
11
6
0
0
0
0
0
0
0
0
0
7
16
21
21
21
23
29
34
38
40
44
47
50
53
52
54
56
56
56
55
54
53
53
52
53
52
50
49
48
48
48
49
48
50
50
51
51
50
48
44
37
23
15
10
7
6
10
12
15
22
28
32
33
33
34
32
31
32
30
32
34
35
37
38
38
36
32
35
33
33
29
28
28
29
30
29
26
15
9
5
9
17
24
30
35
38
41
43
45
47
49
52
53
52
55
53
50
52
52
54
54
53
54
51
49
47
40
34
24
18
13
9
7
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
6
13
21
25
33
37
40
42
41
39
36
30
23
18
13
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
18
20
23
25
28
32
33
36
41
45
49
54
58
59
60
62
63
63
63
63
63
62
61
59
57
54
50
45
38
31
24
17
14
10
7
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
8
14
16
18
17
18
16
16
20
22
25
27
25
23
22
25
29
33
38
40
41
42
41
40
40
41
40
40
39
40
39
39
39
39
39
39
39
38
37
36
34
29
22
17
19
20
18
20
26
32
33
36
37
36
34
30
25
19
15
10
7
4
3
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
8
12
19
21
25
32
34
36
35
31
30
29
25
20
15
14
14
17
17
21
21
24
32
35
34
32
32
32
30
34
38
37
39
37
36
33
35
36
37
38
36
37
37
39
37
35
33
29
26
23
20
21
21
27
31
37
42
48
51
55
57
59
61
63
66
66
65
65
64
64
64
63
61
57
53
49
46
42
38
36
36
36
36
37
41
44
49
53
53
56
57
58
58
57
56
55
53
50
46
40
36
30
24
19
14
9
6
4
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
9
16
20
22
28
34
35
38
41
43
45
48
50
51
53
54
55
55
54
52
48
41
33
25
17
11
7
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
11
17
21
24
26
26
31
34
36
38
37
36
37
39
42
44
44
43
42
40
39
41
43
45
47
48
48
48
52
53
54
52
51
49
47
44
40
37
33
26
19
14
9
5
5
7
13
20
23
27
31
37
40
43
43
41
39
39
41
45
49
52
55
56
56
55
55
55
56
58
58
56
55
55
54
50
48
44
37
30
23
16
10
7
7
15
22
25
33
37
40
44
45
45
44
43
42
42
42
40
38
37
34
33
32
28
17
9
5
4
14
14
15
12
10
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
4
0
0
3
10
10
4
0
4
0
0
3
0
0
0
0
0
0
0
0
0
0
0
7
13
14
12
11
13
18
23
29
34
37
38
39
39
38
37
35
34
32
29
27
27
26
23
17
9
0
0
0
0
0
0
0
0
0
0
0
0
10
17
16
11
5
4
3
8
17
20
25
33
38
40
43
42
41
41
42
43
43
43
43
43
43
42
43
47
50
52
54
56
57
54
48
42
36
31
30
25
25
27
32
37
40
45
49
52
52
51
54
55
53
53
51
50
52
52
54
55
56
56
56
55
55
55
55
55
55
56
56
56
55
55
55
54
54
53
51
50
48
48
49
50
50
50
49
46
41
35
29
23
20
18
22
29
32
32
32
33
32
32
33
34
35
38
38
37
39
36
34
35
27
22
20
19
19
16
8
0
0
0
0
0
0
0
4
8
7
4
0
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
0
0
3
4
5
4
8
15
18
23
25
27
29
31
32
33
33
34
32
32
30
29
27
26
24
24
23
20
19
19
18
18
18
18
18
17
17
15
14
11
5
0
0
7
10
10
8
7
6
0
0
0
0
0
6
11
13
20
26
33
39
42
46
49
49
48
47
46
45
44
44
43
43
43
44
45
45
46
47
49
49
50
50
50
50
50
50
50
50
49
48
48
48
48
49
52
53
54
55
55
53
51
48
43
33
16
6
0
0
0
9
17
18
22
24
31
35
40
40
44
46
48
48
50
51
52
51
50
49
51
52
51
53
54
53
53
51
52
49
44
36
33
25
21
21
20
19
18
20
20
14
10
11
20
23
25
29
33
33
36
40
46
49
49
49
48
48
47
46
48
48
47
43
39
36
35
31
27
26
22
18
15
15
16
17
13
8
4
0
0
0
0
0
0
4
11
18
19
21
23
26
26
28
31
30
33
35
36
38
39
39
39
39
40
40
40
39
36
35
34
34
32
29
25
20
15
11
8
6
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
8
15
21
21
21
24
27
31
34
37
38
36
34
32
30
30
32
33
33
32
30
31
30
24
15
9
6
4
3
0
0
0
0
0
0
0
0
8
10
5
0
0
9
16
18
22
27
32
32
28
19
9
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
10
15
18
20
21
22
25
28
29
30
34
39
39
39
38
38
38
38
38
40
40
40
40
41
41
40
39
38
38
39
40
41
41
41
40
38
36
35
33
27
21
17
16
14
11
9
5
0
0
0
0
0
0
3
10
14
14
16
22
27
29
29
31
33
33
34
35
38
40
41
39
38
39
39
39
39
39
38
38
38
38
37
35
34
33
33
34
35
34
32
30
30
27
25
25
25
24
22
21
21
22
23
25
25
23
24
23
22
21
21
22
25
26
26
28
32
32
32
33
35
37
41
44
44
44
42
37
27
20
18
18
21
24
22
19
16
16
18
19
21
24
27
29
23
13
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
11
20
23
27
32
35
35
33
31
27
21
14
5
0
0
0
4
9
14
18
22
27
31
32
32
33
35
35
34
34
37
38
39
40
40
41
42
46
48
46
44
43
44
45
45
47
49
51
50
49
48
47
47
48
48
47
45
43
40
38
35
34
33
32
34
38
41
44
45
48
47
45
44
42
41
39
38
34
27
21
19
22
26
28
29
27
18
10
7
0
0
0
8
12
14
15
15
14
12
12
14
16
19
22
27
32
34
35
37
36
36
34
28
20
12
7
9
18
18
24
29
30
32
30
28
23
19
17
21
24
25
26
24
22
18
20
25
26
27
26
26
25
24
20
18
16
16
19
25
29
29
28
26
23
20
15
15
18
20
18
18
20
18
17
18
18
19
21
23
24
25
25
25
24
24
25
26
26
26
27
27
26
24
20
19
14
9
9
12
12
10
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
4
4
5
4
4
6
6
6
4
0
0
4
7
8
10
7
6
3
0
0
0
0
0
3
5
5
3
0
0
0
0
0
0
5
10
9
5
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
12
17
23
30
32
36
37
38
39
37
36
29
25
20
20
15
7
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
9
13
16
22
27
32
34
36
40
42
45
46
49
51
52
55
57
58
59
59
59
59
59
57
57
55
51
42
35
27
24
22
21
31
29
32
39
34
36
35
37
37
41
41
40
37
33
28
24
24
21
21
23
25
28
29
30
32
32
34
35
37
39
41
43
44
45
44
43
44
44
42
42
44
41
42
41
43
45
44
44
43
44
47
47
48
46
47
46
45
45
44
42
36
29
22
14
9
10
15
17
21
21
22
24
31
36
39
42
46
50
54
55
56
57
57
55
54
52
50
47
42
35
27
20
15
11
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
11
15
15
15
16
16
15
14
17
19
20
22
24
26
27
29
30
31
31
31
31
29
26
20
15
10
5
0
4
5
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
8
14
18
19
23
26
28
29
32
33
33
34
34
32
28
23
19
17
23
28
31
31
30
28
23
22
23
26
27
24
16
8
0
0
0
0
0
4
10
14
15
19
21
24
29
33
34
37
39
38
37
34
30
22
16
14
13
16
19
21
23
20
18
17
20
24
27
24
20
16
12
11
13
13
17
23
27
32
34
36
37
38
39
39
38
38
39
36
37
34
28
23
18
19
23
27
30
30
31
33
33
33
33
33
32
31
27
21
16
11
11
18
21
24
27
31
35
35
38
39
39
41
41
41
44
40
38
36
34
31
24
18
16
15
16
10
11
9
19
24
26
27
27
28
24
18
15
15
20
25
27
25
25
25
26
27
27
27
27
26
25
20
16
14
12
12
12
19
23
29
35
36
36
33
29
20
15
13
13
16
27
33
33
32
29
25
23
20
16
11
10
6
14
16
17
14
13
15
17
21
24
27
29
30
30
31
31
30
30
30
31
34
35
34
33
33
33
33
32
29
24
18
15
12
12
14
19
21
20
21
18
22
22
24
27
27
29
27
23
17
10
6
11
15
17
23
28
31
30
24
17
9
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
12
15
15
12
11
10
11
13
17
21
21
21
23
26
29
31
27
15
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
14
18
20
23
23
27
32
35
37
39
38
37
35
32
30
28
27
22
19
19
21
23
29
32
32
35
37
38
39
39
38
37
36
34
31
28
26
25
24
23
22
23
24
23
22
20
19
17
16
20
17
18
19
20
20
22
26
31
30
29
26
21
18
15
16
19
18
15
14
12
9
6
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
5
3
0
4
11
15
14
11
10
11
14
21
27
32
33
35
34
30
27
24
22
14
4
0
0
0
11
14
16
20
23
29
30
29
26
24
26
27
27
27
28
32
37
38
41
44
42
40
37
34
30
25
22
18
16
20
24
26
27
27
30
34
36
38
38
36
29
16
8
7
11
13
13
11
10
12
15
17
18
15
11
8
6
10
17
23
26
34
39
40
44
47
48
51
55
56
58
61
63
65
66
68
69
69
69
67
64
62
63
65
66
67
66
64
62
61
59
58
61
63
64
68
66
73
75
75
75
75
75
73
72
71
70
69
70
71
71
70
69
69
67
66
66
65
65
64
64
66
67
69
69
71
71
72
73
72
71
69
68
65
64
63
63
64
65
67
66
65
66
66
66
65
64
64
63
63
64
64
64
64
67
70
70
70
72
72
71
70
70
71
73
74
76
78
79
79
78
77
76
76
75
75
75
76
77
79
79
80
80
79
79
78
78
75
70
66
63
62
60
58
56
56
55
53
51
50
48
37
29
27
23
22
24
28
35
38
43
47
51
50
44
40
40
41
44
48
49
48
49
51
53
56
58
61
63
66
67
67
67
68
70
72
74
74
75
76
77
78
79
79
79
78
78
77
77
77
77
75
73
72
71
71
71
71
72
73
73
74
74
74
75
76
76
76
75
73
72
70
70
71
72
72
72
71
70
69
67
66
65
65
65
66
67
69
68
67
66
65
65
64
63
63
64
65
66
68
69
72
74
75
77
78
77
77
77
77
77
77
77
76
75
74
74
74
74
75
75
74
73
71
70
67
65
63
62
62
61
61
62
63
63
63
63
63
63
65
65
65
66
66
66
66
66
66
66
66
66
66
66
67
70
73
75
76
76
75
73
69
65
64
61
60
61
59
55
49
44
38
33
30
28
25
21
17
13
13
13
13
10
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
4
0
4
9
16
20
24
28
33
36
41
45
50
55
55
57
59
61
63
66
67
68
68
68
65
64
64
64
64
64
63
62
62
62
62
63
65
67
67
66
66
66
66
66
66
67
68
68
69
71
72
73
73
74
74
73
72
71
70
68
68
68
66
64
63
62
60
59
58
55
51
47
44
40
36
35
32
27
25
23
21
19
14
8
5
4
5
7
13
16
20
24
26
29
34
36
39
41
42
44
47
50
52
53
55
56
59
61
61
60
61
63
66
69
72
75
78
81
84
87
90
90
92
93
95
97
99
100
101
102
103
105
105
106
107
107
107
107
108
108
109
110
108
107
106
105
104
102
101
99
97
96
96
96
97
97
99
100
102
103
105
107
108
109
107
105
103
101
99
98
97
96
95
95
94
93
92
91
90
90
90
90
91
91
92
91
86
81
78
77
76
78
79
81
82
83
84
85
86
87
87
88
87
84
79
74
66
59
53
46
40
34
29
25
20
14
7
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
13
22
27
32
38
40
46
51
55
58
59
62
65
68
71
74
76
79
81
80
79
83
84
86
88
90
92
93
95
97
98
99
100
101
102
103
104
105
105
105
105
105
105
105
105
106
105
104
102
102
101
101
99
97
94
91
89
87
86
86
86
86
87
88
88
89
90
90
92
92
93
93
94
94
95
95
94
94
93
91
91
91
91
90
91
90
90
90
90
90
90
90
90
90
91
91
92
92
91
91
90
90
89
89
89
89
89
89
89
88
86
84
82
80
78
76
73
70
65
60
55
49
44
36
28
22
16
9
3
0
3
4
8
13
20
23
25
22
20
17
15
14
13
12
12
10
9
11
14
13
14
15
15
16
16
15
16
18
19
22
23
23
22
21
21
17
12
9
7
9
13
16
22
28
34
36
40
43
45
48
51
51
54
56
56
57
55
53
51
50
49
47
44
38
32
27
26
28
32
34
32
26
22
23
23
22
20
20
23
32
37
39
43
47
51
54
54
55
56
57
56
56
55
54
53
53
54
54
54
55
55
56
56
57
57
57
57
57
56
56
57
56
56
53
48
39
32
26
23
24
25
23
22
21
23
29
31
34
37
39
39
40
40
41
41
41
42
42
43
44
45
48
51
50
49
49
48
47
43
37
34
32
32
31
30
29
29
30
32
33
33
33
35
36
37
38
41
44
49
53
54
55
57
57
57
56
55
53
51
49
45
37
27
18
7
4
8
14
16
23
30
37
41
46
50
51
53
55
55
56
56
56
55
55
54
53
53
52
53
53
54
56
55
59
60
59
59
58
58
58
57
58
57
56
55
56
56
58
59
57
57
56
55
56
54
54
55
55
55
55
56
56
58
59
59
59
59
60
59
59
59
60
61
61
62
63
63
64
64
64
62
61
59
57
55
55
57
58
59
60
60
60
60
60
58
60
59
60
60
60
60
60
60
60
60
60
60
60
60
60
58
56
54
50
48
46
45
45
46
49
51
52
54
56
58
59
61
61
62
62
62
62
62
62
62
62
61
59
57
56
54
52
51
52
51
50
50
49
47
44
39
36
36
36
39
40
40
41
41
40
39
37
37
39
41
44
47
50
51
52
54
51
54
54
55
55
56
55
55
56
56
57
57
57
57
56
57
55
56
59
57
57
57
58
58
58
58
59
59
59
59
58
57
57
57
56
55
52
53
51
51
51
51
51
51
52
53
53
53
52
53
53
53
51
49
50
47
44
43
40
36
31
25
17
12
12
15
14
16
17
14
11
9
5
6
7
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
0
4
4
0
0
0
0
0
0
0
0
0
4
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
9
11
8
7
10
15
14
16
20
28
31
33
36
40
43
46
50
50
50
50
50
49
49
50
51
52
53
54
55
55
55
53
51
48
48
49
51
53
55
56
58
60
61
63
64
64
63
63
63
61
59
57
55
54
53
53
54
54
54
56
57
57
58
59
60
59
57
56
56
55
54
53
54
54
53
51
50
48
48
47
44
43
42
43
43
43
44
44
44
45
45
46
48
48
49
50
51
51
50
49
48
48
49
50
51
53
54
55
55
55
56
56
56
56
55
54
53
50
49
48
47
47
47
46
46
46
48
50
50
51
51
51
51
50
50
49
49
48
47
48
49
51
53
54
56
58
58
59
59
59
59
59
59
59
58
57
55
54
54
53
53
53
53
54
54
53
53
53
53
54
54
55
55
54
52
51
49
49
48
50
52
52
53
53
53
53
52
52
52
52
52
51
50
48
48
49
50
50
50
50
49
48
49
50
50
51
51
50
48
48
48
49
49
49
49
49
50
50
50
50
49
49
49
48
48
46
44
45
46
47
46
44
43
42
42
42
40
40
41
42
42
43
43
43
43
41
40
39
38
35
30
25
13
13
15
19
23
26
29
30
30
29
29
28
28
28
30
30
29
27
26
25
23
23
24
26
26
24
23
26
29
29
28
26
23
21
18
18
17
16
16
15
18
22
30
32
31
38
42
45
51
52
53
55
57
57
56
57
55
54
53
51
49
48
46
43
38
34
32
29
27
27
30
30
32
33
34
37
39
44
49
51
51
53
54
53
52
52
52
52
52
51
50
49
45
38
32
28
26
24
23
21
21
22
22
22
22
22
21
21
20
19
19
21
26
32
35
39
43
47
52
53
54
56
57
59
61
62
63
64
64
64
64
64
64
63
62
60
57
51
43
35
29
24
20
22
23
24
25
24
25
22
24
23
24
25
25
27
24
25
25
26
26
26
27
31
32
31
27
19
15
14
15
17
17
20
22
24
26
25
20
17
17
19
22
24
26
27
26
21
14
9
13
18
21
23
22
20
17
11
8
8
8
10
13
18
19
23
27
31
32
33
35
36
36
35
31
25
25
24
20
12
6
0
0
0
5
7
12
16
18
20
23
27
27
26
28
27
20
14
10
12
10
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0